package kr.co.insoft.driver.model;

import java.io.Serializable;

import kr.co.insoft.driver.util.NullExcludeTransformer;
import flexjson.JSONSerializer;

/**
 * 
 * @author IN-SOFT Inc. GoodwillDD(sylee@in-soft.co.kr)
 * 
 */
public class DriverCredentialModel implements Serializable {
	/**
	 * 
	 */
	private static final long serialVersionUID = 6205408485325528428L;
	String username;
	String cloudKey;
	Long userId;
	String driverType;
	String keyName;
	String description;
	String accessKey;
	String secretKey;
	String endpoint;
	String provider;

	public DriverCredentialModel() {

	}

	public DriverCredentialModel(String accessKey, String secretKey) {
		this.accessKey = accessKey;
		this.secretKey = secretKey;
	}

	public String toString() {
		return (new JSONSerializer())
				.transform(new NullExcludeTransformer(), void.class)
				.exclude("*.class").deepSerialize(this);
	}

	/**
	 * @return the accessKey
	 */
	public String getAccessKey() {
		return accessKey;
	}

	/**
	 * @param accessKey
	 *            the accessKey to set
	 */
	public void setAccessKey(String accessKey) {
		this.accessKey = accessKey;
	}

	/**
	 * @return the secretKey
	 */
	public String getSecretKey() {
		return secretKey;
	}

	/**
	 * @param secretKey
	 *            the secretKey to set
	 */
	public void setSecretKey(String secretKey) {
		this.secretKey = secretKey;
	}

	/**
	 * @return the cloudKey
	 */
	public String getCloudKey() {
		return cloudKey;
	}

	/**
	 * @param cloudKey
	 *            the cloudKey to set
	 */
	public void setCloudKey(String cloudKey) {
		this.cloudKey = cloudKey;
	}

	/**
	 * @return the keyName
	 */
	public String getKeyName() {
		return keyName;
	}

	/**
	 * @param keyName
	 *            the keyName to set
	 */
	public void setKeyName(String keyName) {
		this.keyName = keyName;
	}

	/**
	 * @return the description
	 */
	public String getDescription() {
		return description;
	}

	/**
	 * @param description
	 *            the description to set
	 */
	public void setDescription(String description) {
		this.description = description;
	}

	/**
	 * @return the userId
	 */
	public Long getUserId() {
		return userId;
	}

	/**
	 * @param userId
	 *            the userId to set
	 */
	public void setUserId(Long userId) {
		this.userId = userId;
	}

	/**
	 * @return the driverType
	 */
	public String getDriverType() {
		return driverType;
	}

	/**
	 * @param driverType
	 *            the driverType to set
	 */
	public void setDriverType(String driverType) {
		this.driverType = driverType;
	}

	/**
	 * @return the username
	 */
	public String getUsername() {
		return username;
	}

	/**
	 * @param username
	 *            the username to set
	 */
	public void setUsername(String username) {
		this.username = username;
	}

	/**
	 * @return the endpoint
	 */
	public String getEndpoint() {
		return endpoint;
	}

	/**
	 * @param endpoint
	 *            the endpoint to set
	 */
	public void setEndpoint(String endpoint) {
		this.endpoint = endpoint;
	}

	/**
	 * @return the provider
	 */
	public String getProvider() {
		return provider;
	}

	/**
	 * @param provider the provider to set
	 */
	public void setProvider(String provider) {
		this.provider = provider;
	}

}
